In today's information age, it is typical for computers and computer peripherals to be internetworked over a communication network. The communication network typically includes a plurality of communication links that are interconnected through a number of intermediate devices, such as bridges, routers, or switches. Information sent by a source device to a destination device traverses one or more communication links.
The various communication devices in the communication network, including the computers, computer peripherals, and intermediate devices, utilize various communication protocols in order to transport the information from the source device to the destination device. The communication protocols are typically implemented in layers, which together form a protocol stack. Each protocol layer provides a specific set of services to the protocol layer immediately above it in the protocol stack. Although there are different protocol layering schemes in use today, the different protocol layering schemes have certain common attributes. Specifically, protocols at the lowest layer in the protocol stack, which are typically referred to as the “layer 1” or “physical layer” protocols, define the physical and electrical characteristics for transporting the information from one communication device to another communication device across a single communication link. Protocols at the next layer in the protocol stack, which are typically referred to as the “layer 2” or “Medium Access Control (MAC) layer” protocols, define the protocol message formats for transporting the information across the single communication link by the physical layer protocols. Protocols at the next layer in the protocol stack, which are typically referred to as the “layer 3” or “network layer” protocols, define the protocol message formats for transporting the information end-to-end from the source device to the destination device across multiple communication links. Higher layer protocols ultimately utilize the services provided by the network protocols for transferring information across the communication network.
In order for a communication device to utilize the services of the communication network, the communication device is assigned various addresses that are used by the different protocol layers in the protocol stack. Specifically, each communication device that participates in a MAC layer protocol is assigned a MAC layer address that is used to identify the particular communication device to other communication devices participating in the MAC layer protocol. Furthermore, each communication device that participates in a network layer protocol is assigned a network layer address that is used to identify the particular communication device to other communication devices participating in the network layer protocol. Other addresses may be used at the higher layers of the protocol stack, for example, for directing the information to a particular application within the destination device.
Therefore, in order for the source device to send a message to the destination device, the source device first encapsulates the message into a network layer protocol message (referred to as a “packet” or “datagram” in various network layer protocols). The network layer protocol message typically includes a source network layer address equal to the network layer address of the source device and a destination network layer address equal to the network layer address of the destination device. The source device then encapsulates the network layer protocol message into a MAC layer protocol message (referred to as a “frame” in various MAC layer protocols). The MAC layer protocol message typically includes a source MAC layer address equal to the MAC layer address of the source device and a destination MAC layer address equal to the MAC layer address the destination device. The source device then sends the MAC layer protocol message over the communication link according to a particular physical layer protocol.
In certain situations, the source device and the destination device may be on different communication links. Therefore, an intermediate device receives the MAC layer protocol message from the source device over one communication link and forwards the MAC layer protocol message to the destination device on another communication link based upon the destination MAC layer address. Such an intermediate device is often referred to as a “MAC layer switch.”
In order to forward protocol messages across multiple communication links, each intermediate device typically maintains an address database including a number of address entries, where each address entry includes filtering and forwarding information associated with a particular address. A typical address entry maps an address to a corresponding network interface. Such address entries are typically used for forwarding protocol messages by the intermediate device, specifically based upon a destination address in each protocol message. For example, upon receiving a protocol message over a particular incoming network interface and including a particular destination address, the intermediate device finds an address entry for the destination address, and processes the protocol message based upon the filtering and forwarding information in the address entry. The intermediate device may, for example, “drop” the protocol message or forward the protocol message onto an outgoing network interface designated in the address entry.
Because intermediate devices are utilized in a wide range of applications, some intermediate devices utilize a modular design that enables a number of modules to be interconnected in a stack configuration such that the number of interconnected modules interoperate in a cooperating mode of operation to form a single virtual device. Each module is capable of operating independently as a stand-alone device or in a stand-alone mode of operation, and therefore each module is a complete system unto itself. Each module typically supports a number of directly connected communication devices through a number of network interfaces. The modular design approach enables the intermediate device to be scalable, such that modules can be added and removed to fit the requirements of a particular application.
When a number of modules are interconnected in a cooperating mode of operation, it is desirable for the number of interconnected modules to operate and be managed as an integrated unit rather than individually as separate modules. Because each module is capable of operating independently, each module includes all of the components that are necessary for the module to operate autonomously. Thus, each module typically includes a number of interface ports for communicating with the directly connected communication devices, as well as sufficient processing and memory resources for supporting the directly connected communication devices. Each module typically also includes a full protocol stack and network management software that enable the module to be configured and controlled through, for example, a console user interface, a Simple Network Management protocol (SNMP) interface, or world wide web interface.
In order to operate and manage the interconnected modules as an integrated unit, a centralized management approach is often employed. Specifically, a centralized manager coordinates the operation and management of the various interconnected modules. The centralized manager may be, for example, a docking station, a dedicated management module, or even one of the cooperating modules (which is often referred to as a “base module” for the stack).
Such a centralized management approach has a number of disadvantages. A dedicated management module or docking station increases the cost of the stack, and represents a single point of failure for the stack. Adding one or more redundant dedicated management modules to the stack only increases the cost of the stack even further. Similarly, a base module represents a single point of failure for the stack. Also, because the base module is responsible for all management operations and databases for the entire stack, the base module requires additional memory resources (and possibly other resources) to coordinate management and control for the number of interconnected modules in the stack, which increases the cost of the base module. Adding one or more redundant base modules to the stack only increases the cost of the stack even further. Furthermore, the centralized management approach requires the centralized manager to collect information from all of the modules, and therefore requires a substantial amount of communication between the centralized manager and the (other) interconnected modules in the stack.
Thus, a need remains for an efficient management architecture for operating and managing a number of interconnected modules as an integrated unit.